Repository navigation
Show a setup page and a usage dashboard in the browser - #247
Merged
Merged
Conversation
A browser GET on /mcp (Accept with text/html, without text/event-stream) now gets a short setup page instead of a 406 error; MCP clients pass through unchanged. The root page shows the same setup steps and links to the documentation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Opening https://financedatabase.jeroenbouma.com/mcp in a browser returned a 406 JSON error. Now a GET on the MCP endpoint whose Accept header contains
text/htmlbut nottext/event-streamgets a short setup page instead. MCP clients POST JSON-RPC or ask for an event stream, so they never see it. The root page (/) shows the same page.The page, in the dark style of the server's icon:
uvx --from "financedatabase[mcp]" financedatabase-mcp-setup)Interpolated values are HTML-escaped. Behind the tunnel the URL shows as https, because uvicorn already trusts the proxy headers.
Tests cover all three cases (a browser GET gets the page; a GET that accepts an event stream and a JSON-RPC initialize POST pass through) plus the escaping. I also checked it end to end with
financedatabase-mcp --transport streamable-http.Usage dashboard at
/stats. A browser (Accept withtext/html, withoutapplication/json) now gets the same totals as a dashboard, in the style of the Finance Toolkit's: key figures, a few plain-language observations, calls and users per day since the first call, and the most used tools with their share and response time. It has no scripts and loads nothing from elsewhere. Other clients,curlincluded, still get the JSON. Tested at desktop and phone width with the live totals and with a full 30 days of data.